Page({
  data: {
    todos: [],
    inputValue: '',
    showCompleted: true,
    pendingCount: 0,
    completedCount: 0
  },

  onLoad() {
    this.loadTodos()
  },

  // 加载待办事项
  loadTodos() {
    const todos = wx.getStorageSync('todos') || []
    this.updateCounts(todos)
  },

  // 更新计数
  updateCounts(todos) {
    const pendingCount = todos.filter(todo => !todo.completed).length
    const completedCount = todos.filter(todo => todo.completed).length

    this.setData({
      todos,
      pendingCount,
      completedCount
    })
  },

  // 保存待办事项
  saveTodos() {
    wx.setStorageSync('todos', this.data.todos)
  },

  // 输入框变化
  onInputChange(e) {
    this.setData({
      inputValue: e.detail.value
    })
  },

  // 添加待办事项
  addTodo() {
    const { inputValue, todos } = this.data
    if (!inputValue.trim()) {
      wx.showToast({
        title: '请输入待办事项',
        icon: 'none'
      })
      return
    }

    const newTodo = {
      id: Date.now(),
      text: inputValue.trim(),
      completed: false,
      createdAt: new Date().toISOString()
    }

    const newTodos = [newTodo, ...todos]
    this.updateCounts(newTodos)
    this.setData({
      inputValue: ''
    })
    this.saveTodos()

    wx.showToast({
      title: '添加成功',
      icon: 'success'
    })
  },

  // 切换完成状态
  toggleTodo(e) {
    const { id } = e.currentTarget.dataset
    const todos = this.data.todos.map(todo => {
      if (todo.id === id) {
        return { ...todo, completed: !todo.completed }
      }
      return todo
    })

    this.updateCounts(todos)
    this.saveTodos()
  },

  // 删除待办事项
  deleteTodo(e) {
    const { id } = e.currentTarget.dataset
    
    wx.showModal({
      title: '确认删除',
      content: '确定要删除这个待办事项吗？',
      success: (res) => {
        if (res.confirm) {
          const todos = this.data.todos.filter(todo => todo.id !== id)
          this.updateCounts(todos)
          this.saveTodos()
          
          wx.showToast({
            title: '删除成功',
            icon: 'success'
          })
        }
      }
    })
  },

  // 切换显示已完成
  toggleShowCompleted() {
    this.setData({
      showCompleted: !this.data.showCompleted
    })
  },

  // 清空已完成
  clearCompleted() {
    wx.showModal({
      title: '确认清空',
      content: '确定要清空所有已完成的待办事项吗？',
      success: (res) => {
        if (res.confirm) {
          const todos = this.data.todos.filter(todo => !todo.completed)
          this.updateCounts(todos)
          this.saveTodos()
          
          wx.showToast({
            title: '清空成功',
            icon: 'success'
          })
        }
      }
    })
  }
})
